package connection;
//Druid 连接池的核心类，用于创建和管理数据库连接池。
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
//java 的标准接口，用于表示一个数据源，通常用于获取数据库连接
import javax.sql.DataSource;
//用于读取文件内容
import java.io.FileInputStream;
//数据库的连接
import java.sql.Connection;
//处理属性文件
import java.util.Properties;

//管理数据库连接
public class Conn {
    //    管理数据库连接
    private static DataSource dataSource;
    //    初始化 dataSource 变量
    static {
        try {
//            创建一个 Properties 对象，用于加载配置文件。
            Properties prop;
            prop = new Properties();
//            从指定路径加载 druid.properties 文件，该文件包含了 Druid 连接池的配置信息
            prop.load(new FileInputStream("ticketingSystem/src/druid.properties"));
//             根据配置文件创建 DataSource 实例
            dataSource = DruidDataSourceFactory.createDataSource(prop);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    //在其他类中，可以通过 Conn.getConn() 方法获取数据库连接；调用 Conn.closeDataSource() 来关闭连接池，释放资源。
    public static Connection getConn () {
        Connection conn;
        try {
            conn = dataSource.getConnection();
            return conn;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void closeDataSource () {
        ((DruidDataSource)dataSource).close();
    }
}
